package leetcode_200;

public class FindPeakElement_162 {
	int[] nums;
	boolean flag=false;
	int res=Integer.MIN_VALUE;;
	public static void main(String[] args) {
		FindPeakElement_162 test=new FindPeakElement_162();
		System.out.println(test.findPeakElement(new int[] {1,2,1,3,5,6,4}));
		System.out.println(test.findPeakElement(new int[] {1,2}));

	}
	
	/**
	 * describe: 常规方法找出山峰元素  左右同时扫描 
	 * 2018年6月7日 上午10:20:47
	 * @param nums
	 * @return
	 * int
	 */
	public int findPeakElement(int[] nums) {
		if(nums.length==1)
			return 0;
		if(nums.length==2)
			return nums[0]>nums[1]?0:1;
		if(nums[0]>nums[1])
			return 0;//否则1号比左边大
		if(nums[nums.length-1]>nums[nums.length-2])
			return nums.length-1;//
		int i=1,j=nums.length-2;
		int index=0;
		while(i+index<=j-index) {
			if(nums[i+index]>nums[i+index+1])
				return i+index;
			if(nums[j-index]>nums[j-index-1])
				return j-index;
			++index;
		}
		return 0;
    }
	

}
